//
//  main.c
//  if语句
//
//  Created by ws on 2017/7/14.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
 程序的三种结构
 1.顺序结构
 2.分支结构(if)
 3.循环结构
 */
/**
 if语句注意点
 1.当变量与常量进行==或!=判断的时候 一般会把常量写在前面
 2.只有一个分号的语句也是一个空语句,空语句也是语句,所以在if小括号后面不要直接写分号
 3.if代码块里面定义的变量不可以在外部代码块中访问
 4.作用域混乱:如果你想在if语句中定义变量,就必须加上大括号
 5.if语句每部分不许连接在一起,不可以有无头的if 
 
 
 if语句第一种表达方式:如果条件成立就执行小括号后面大括号里面的程序
 if (条件表达式){
  语句...
  ...
 }
 if语句第二种表达方式:如果条件成立就执行if后面小括号后面大括号里面的程序,否者就执行else后面大括号里面的程序,这里面至少有一个代码块被执行
 if (条件表达式){
 语句...
 ...
 }else{
 语句...
 ...
 }
 */

/**
 if语句的基本表达方式
 */
void test0(){
    int age = 18;
    if (age >= 18) {
        printf("成年\n");
    }
}
void test1(){
    int age = 18;
    if (age >= 18) {
        printf("成年\n");
    }else{//否者
        printf("未成年\n");
    }
}
/**
 当变量与常量进行==或!=判断的时候 一般会把常量写在前面
 */
void test2(){
    int a = 10;
    //当变量与常量进行==或!=判断的时候 一般会把常量写在前面
    if (2 == a){
        printf("成年\n");
    }

}
/**
 只有一个分号的语句也是一个空语句,空语句也是语句,所以在if小括号后面不要直接写分号
 */
void test3(){
    int a = 10;
    //只有一个分号的语句也是一个空语句,空语句也是语句,所以在if小括号后面不要直接写分号
    if (a > 18);//此处不能写分号
    {
        printf("成年\n");//能打印出来
    }
}
/**
 if代码块里面定义的变量不可以在外部代码块中访问
 作用域混乱:如果你想在if语句中定义变量,就必须加上大括号
 */
void test4(){
    int age = 18;
    //if代码块里面定义的变量不可以在外部代码块中访问
    if (age <= 3){
        int num = 20;
        printf("未成年\n");
    }
    //    printf("num = %d\n",num);//错误
}
/**
 if语句每部分不许连接在一起,不可以有无头的if
 */
void test5(){
//    int age = 10;
//    if (age == 2)
//        printf("年龄等于2\n");
//        printf("年龄等于2\n");//此行代码把完整的if语句断开啦,导致下面else if 没有头 而报错
//    else if (age == 3)
//        printf("年龄等于3\n");
//    else
//        printf("其它年龄\n");
    
    int age = 10;
    if (age == 2)
        printf("年龄等于2\n");
    else if (age == 3)
        printf("年龄等于3\n");
    else
        printf("其它年龄\n");

}
int main(int argc, const char * argv[]) {
   return 0;
}
